home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 60 / IOPROG_60.ISO / soft / c++ / gsl-1.1.1-setup.exe / {app} / src / cblas / test_her2k.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-04-18  |  11.4 KB  |  428 lines

  1. #include <gsl/gsl_test.h>
  2. #include <gsl/gsl_ieee_utils.h>
  3. #include <gsl/gsl_math.h>
  4. #include <gsl/gsl_cblas.h>
  5.  
  6. #include "tests.h"
  7.  
  8. void
  9. test_her2k (void) {
  10. const double flteps = 1e-4, dbleps = 1e-6;
  11.   {
  12.    int order = 101;
  13.    int uplo = 121;
  14.    int trans = 111;
  15.    int N = 1;
  16.    int K = 2;
  17.    float alpha[2] = {0.0f, 0.1f};
  18.    float beta = 0.1f;
  19.    float A[] = { 0.531f, 0.721f, -0.848f, 0.826f };
  20.    int lda = 2;
  21.    float B[] = { -0.711f, -0.2f, -0.92f, -0.676f };
  22.    int ldb = 2;
  23.    float C[] = { -0.447f, 0.701f };
  24.    int ldc = 1;
  25.    float C_expected[] = { 0.30322f, 0.0f };
  26.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  27.    {
  28.      int i;
  29.      for (i = 0; i < 1; i++) {
  30.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1654) real");
  31.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1654) imag");
  32.      };
  33.    };
  34.   };
  35.  
  36.  
  37.   {
  38.    int order = 101;
  39.    int uplo = 122;
  40.    int trans = 111;
  41.    int N = 1;
  42.    int K = 2;
  43.    float alpha[2] = {0.0f, 0.1f};
  44.    float beta = 0.1f;
  45.    float A[] = { 0.68f, 0.079f, 0.837f, -0.814f };
  46.    int lda = 2;
  47.    float B[] = { -0.986f, 0.024f, 0.584f, -0.248f };
  48.    int ldb = 2;
  49.    float C[] = { 0.477f, -0.551f };
  50.    int ldc = 1;
  51.    float C_expected[] = { 0.120103f, 0.0f };
  52.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  53.    {
  54.      int i;
  55.      for (i = 0; i < 1; i++) {
  56.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1655) real");
  57.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1655) imag");
  58.      };
  59.    };
  60.   };
  61.  
  62.  
  63.   {
  64.    int order = 102;
  65.    int uplo = 121;
  66.    int trans = 111;
  67.    int N = 1;
  68.    int K = 2;
  69.    float alpha[2] = {0.0f, 0.1f};
  70.    float beta = 0.1f;
  71.    float A[] = { 0.354f, -0.63f, -0.85f, 0.426f };
  72.    int lda = 1;
  73.    float B[] = { 0.787f, -0.228f, -0.568f, 0.83f };
  74.    int ldb = 1;
  75.    float C[] = { 0.428f, -0.388f };
  76.    int ldc = 1;
  77.    float C_expected[] = { 0.0331132f, 0.0f };
  78.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  79.    {
  80.      int i;
  81.      for (i = 0; i < 1; i++) {
  82.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1656) real");
  83.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1656) imag");
  84.      };
  85.    };
  86.   };
  87.  
  88.  
  89.   {
  90.    int order = 102;
  91.    int uplo = 122;
  92.    int trans = 111;
  93.    int N = 1;
  94.    int K = 2;
  95.    float alpha[2] = {0.0f, 0.1f};
  96.    float beta = 0.1f;
  97.    float A[] = { -0.49f, 0.224f, -0.606f, 0.46f };
  98.    int lda = 1;
  99.    float B[] = { -0.191f, -0.815f, 0.464f, 0.066f };
  100.    int ldb = 1;
  101.    float C[] = { 0.302f, 0.023f };
  102.    int ldc = 1;
  103.    float C_expected[] = { 0.0679396f, 0.0f };
  104.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  105.    {
  106.      int i;
  107.      for (i = 0; i < 1; i++) {
  108.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1657) real");
  109.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1657) imag");
  110.      };
  111.    };
  112.   };
  113.  
  114.  
  115.   {
  116.    int order = 101;
  117.    int uplo = 121;
  118.    int trans = 113;
  119.    int N = 1;
  120.    int K = 2;
  121.    float alpha[2] = {-1.0f, 0.0f};
  122.    float beta = 0.0f;
  123.    float A[] = { 0.943f, 0.075f, 0.15f, -0.141f };
  124.    int lda = 1;
  125.    float B[] = { -0.962f, 0.422f, -0.592f, -0.789f };
  126.    int ldb = 1;
  127.    float C[] = { 0.728f, 0.601f };
  128.    int ldc = 1;
  129.    float C_expected[] = { 1.70613f, 0.0f };
  130.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  131.    {
  132.      int i;
  133.      for (i = 0; i < 1; i++) {
  134.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1658) real");
  135.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1658) imag");
  136.      };
  137.    };
  138.   };
  139.  
  140.  
  141.   {
  142.    int order = 101;
  143.    int uplo = 122;
  144.    int trans = 113;
  145.    int N = 1;
  146.    int K = 2;
  147.    float alpha[2] = {-1.0f, 0.0f};
  148.    float beta = 0.0f;
  149.    float A[] = { -0.93f, -0.386f, 0.565f, 0.141f };
  150.    int lda = 1;
  151.    float B[] = { -0.801f, 0.022f, 0.558f, -0.932f };
  152.    int ldb = 1;
  153.    float C[] = { 0.068f, 0.501f };
  154.    int ldc = 1;
  155.    float C_expected[] = { -1.84059f, 0.0f };
  156.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  157.    {
  158.      int i;
  159.      for (i = 0; i < 1; i++) {
  160.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1659) real");
  161.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1659) imag");
  162.      };
  163.    };
  164.   };
  165.  
  166.  
  167.   {
  168.    int order = 102;
  169.    int uplo = 121;
  170.    int trans = 113;
  171.    int N = 1;
  172.    int K = 2;
  173.    float alpha[2] = {-1.0f, 0.0f};
  174.    float beta = 0.0f;
  175.    float A[] = { -0.383f, 0.124f, 0.458f, -0.221f };
  176.    int lda = 2;
  177.    float B[] = { -0.107f, 0.199f, 0.18f, 0.122f };
  178.    int ldb = 2;
  179.    float C[] = { 0.896f, -0.874f };
  180.    int ldc = 1;
  181.    float C_expected[] = { -0.24227f, 0.0f };
  182.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  183.    {
  184.      int i;
  185.      for (i = 0; i < 1; i++) {
  186.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1660) real");
  187.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1660) imag");
  188.      };
  189.    };
  190.   };
  191.  
  192.  
  193.   {
  194.    int order = 102;
  195.    int uplo = 122;
  196.    int trans = 113;
  197.    int N = 1;
  198.    int K = 2;
  199.    float alpha[2] = {-1.0f, 0.0f};
  200.    float beta = 0.0f;
  201.    float A[] = { 0.131f, 0.692f, 0.533f, -0.672f };
  202.    int lda = 2;
  203.    float B[] = { -0.435f, -0.453f, 0.195f, -0.579f };
  204.    int ldb = 2;
  205.    float C[] = { -0.547f, 0.736f };
  206.    int ldc = 1;
  207.    float C_expected[] = { -0.245124f, 0.0f };
  208.    cblas_cher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  209.    {
  210.      int i;
  211.      for (i = 0; i < 1; i++) {
  212.        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cher2k(case 1661) real");
  213.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cher2k(case 1661) imag");
  214.      };
  215.    };
  216.   };
  217.  
  218.  
  219.   {
  220.    int order = 101;
  221.    int uplo = 121;
  222.    int trans = 111;
  223.    int N = 1;
  224.    int K = 2;
  225.    double alpha[2] = {-0.3, 0.1};
  226.    double beta = 0.1;
  227.    double A[] = { 0.972, -0.353, 0.712, -0.53 };
  228.    int lda = 2;
  229.    double B[] = { 0.787, -0.379, 0.889, 0.901 };
  230.    int ldb = 2;
  231.    double C[] = { 0.002, 0.266 };
  232.    int ldc = 1;
  233.    double C_expected[] = { -0.4278924, 0.0 };
  234.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  235.    {
  236.      int i;
  237.      for (i = 0; i < 1; i++) {
  238.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1662) real");
  239.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1662) imag");
  240.      };
  241.    };
  242.   };
  243.  
  244.  
  245.   {
  246.    int order = 101;
  247.    int uplo = 122;
  248.    int trans = 111;
  249.    int N = 1;
  250.    int K = 2;
  251.    double alpha[2] = {-0.3, 0.1};
  252.    double beta = 0.1;
  253.    double A[] = { -0.36, 0.192, 0.539, 0.198 };
  254.    int lda = 2;
  255.    double B[] = { -0.673, 0.781, 0.792, 0.335 };
  256.    int ldb = 2;
  257.    double C[] = { 0.719, -0.339 };
  258.    int ldc = 1;
  259.    double C_expected[] = { -0.485009, 0.0 };
  260.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  261.    {
  262.      int i;
  263.      for (i = 0; i < 1; i++) {
  264.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1663) real");
  265.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1663) imag");
  266.      };
  267.    };
  268.   };
  269.  
  270.  
  271.   {
  272.    int order = 102;
  273.    int uplo = 121;
  274.    int trans = 111;
  275.    int N = 1;
  276.    int K = 2;
  277.    double alpha[2] = {-0.3, 0.1};
  278.    double beta = 0.1;
  279.    double A[] = { -0.143, 0.456, 0.677, -0.522 };
  280.    int lda = 1;
  281.    double B[] = { 0.851, 0.196, 0.586, 0.64 };
  282.    int ldb = 1;
  283.    double C[] = { 0.617, 0.118 };
  284.    int ldc = 1;
  285.    double C_expected[] = { 0.1081226, 0.0 };
  286.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  287.    {
  288.      int i;
  289.      for (i = 0; i < 1; i++) {
  290.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1664) real");
  291.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1664) imag");
  292.      };
  293.    };
  294.   };
  295.  
  296.  
  297.   {
  298.    int order = 102;
  299.    int uplo = 122;
  300.    int trans = 111;
  301.    int N = 1;
  302.    int K = 2;
  303.    double alpha[2] = {-0.3, 0.1};
  304.    double beta = 0.1;
  305.    double A[] = { 0.801, 0.91, 0.376, -0.006 };
  306.    int lda = 1;
  307.    double B[] = { -0.613, -0.758, -0.966, 0.194 };
  308.    int ldb = 1;
  309.    double C[] = { -0.723, -0.765 };
  310.    int ldc = 1;
  311.    double C_expected[] = { 0.8583678, 0.0 };
  312.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  313.    {
  314.      int i;
  315.      for (i = 0; i < 1; i++) {
  316.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1665) real");
  317.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1665) imag");
  318.      };
  319.    };
  320.   };
  321.  
  322.  
  323.   {
  324.    int order = 101;
  325.    int uplo = 121;
  326.    int trans = 113;
  327.    int N = 1;
  328.    int K = 2;
  329.    double alpha[2] = {-0.3, 0.1};
  330.    double beta = 0.1;
  331.    double A[] = { -0.359, 0.913, 0.738, -0.227 };
  332.    int lda = 1;
  333.    double B[] = { 0.787, 0.745, 0.036, -0.606 };
  334.    int ldb = 1;
  335.    double C[] = { -0.652, -0.281 };
  336.    int ldc = 1;
  337.    double C_expected[] = { -0.1172608, 0.0 };
  338.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  339.    {
  340.      int i;
  341.      for (i = 0; i < 1; i++) {
  342.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1666) real");
  343.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1666) imag");
  344.      };
  345.    };
  346.   };
  347.  
  348.  
  349.   {
  350.    int order = 101;
  351.    int uplo = 122;
  352.    int trans = 113;
  353.    int N = 1;
  354.    int K = 2;
  355.    double alpha[2] = {-0.3, 0.1};
  356.    double beta = 0.1;
  357.    double A[] = { -0.933, 0.598, 0.952, 0.25 };
  358.    int lda = 1;
  359.    double B[] = { -0.508, -0.461, -0.727, 0.162 };
  360.    int ldb = 1;
  361.    double C[] = { 0.215, 0.943 };
  362.    int ldc = 1;
  363.    double C_expected[] = { 0.0795166, 0.0 };
  364.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  365.    {
  366.      int i;
  367.      for (i = 0; i < 1; i++) {
  368.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1667) real");
  369.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1667) imag");
  370.      };
  371.    };
  372.   };
  373.  
  374.  
  375.   {
  376.    int order = 102;
  377.    int uplo = 121;
  378.    int trans = 113;
  379.    int N = 1;
  380.    int K = 2;
  381.    double alpha[2] = {-0.3, 0.1};
  382.    double beta = 0.1;
  383.    double A[] = { -0.735, 0.372, -0.251, -0.168 };
  384.    int lda = 2;
  385.    double B[] = { 0.217, 0.863, -0.179, -0.057 };
  386.    int ldb = 2;
  387.    double C[] = { 0.579, -0.305 };
  388.    int ldc = 1;
  389.    double C_expected[] = { 0.0744312, 0.0 };
  390.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  391.    {
  392.      int i;
  393.      for (i = 0; i < 1; i++) {
  394.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1668) real");
  395.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1668) imag");
  396.      };
  397.    };
  398.   };
  399.  
  400.  
  401.   {
  402.    int order = 102;
  403.    int uplo = 122;
  404.    int trans = 113;
  405.    int N = 1;
  406.    int K = 2;
  407.    double alpha[2] = {-0.3, 0.1};
  408.    double beta = 0.1;
  409.    double A[] = { -0.587, -0.994, -0.625, 0.681 };
  410.    int lda = 2;
  411.    double B[] = { -0.577, -0.014, -0.434, 0.204 };
  412.    int ldb = 2;
  413.    double C[] = { 0.256, 0.093 };
  414.    int ldc = 1;
  415.    double C_expected[] = { -0.3526202, 0.0 };
  416.    cblas_zher2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
  417.    {
  418.      int i;
  419.      for (i = 0; i < 1; i++) {
  420.        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zher2k(case 1669) real");
  421.        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zher2k(case 1669) imag");
  422.      };
  423.    };
  424.   };
  425.  
  426.  
  427. }
  428.